home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_usrdoc / LDSO / README.{_1 < prev   
Encoding:
Text File  |  1999-09-17  |  24.0 KB  |  794 lines

  1. This package contains my ELF dynamic linkers (ld-linux.so.1), dynamic
  2. linker library (libdl.so.1) and utilities (ldconfig and ldd) for Linux.
  3.  
  4. You need Linux kernel 2.0.0 or later with ELF support compiled in
  5. (i.e. not loaded as a module) to use this package.
  6.  
  7. The dynamic linker is used to bootstrap programs and load shared
  8. libraries at startup.  The dynamic linker library is used to
  9. dynamically load shared libraries after a program is running.
  10. Ldconfig is used to automatically update the symbolic links to shared
  11. libraries and build the cache file used by the dynamic linker.  Ldd is
  12. used to list the shared libraries used by a program.
  13.  
  14. Please see the included manual pages for further details.
  15.  
  16. To install, simply run "sh instldso.sh" as root.  Ready-to-go versions
  17. of all end-products are provided so nothing should need to be compiled
  18. or linked.  If you are still using libc5 as your primary development
  19. library, you should use the "--devfiles" option when running
  20. instldso.sh to install the file needed to compile with libdl.
  21.  
  22. ELF versions of gcc, binutils and libc are now required to compile
  23. everything, including the old, unsupported, a.out dynamic linker.
  24. Finally, an optimization level of O2 or higher must be used to compile
  25. ld-linux.so and libdl.so due the use of inline functions.
  26.  
  27. Notable contributors to this package include Eric Youngdale, Peter
  28. MacDonald, Hongjiu Lu, Linus Torvalds, Lars Wirzenius, Mitch D'Souza,
  29. Rik Faith, Andreas Schwab and Adam Richter (not necessarily in that
  30. order).
  31.  
  32. ###################### IMPORTANT NOTICES #############################
  33.  
  34. A.OUT SUPPORT:
  35.  
  36. As of ld.so-1.9.0, the old, a.out dynamic loader is no longer 
  37. officially supported.  The code is still included and built, but I 
  38. make no promises that it will work.  I will accept patches for it, 
  39. but they will not be tested by me.
  40.  
  41. GLIBC (AKA LIBC6) SUPPORT:
  42.  
  43. As of ld.so-1.9.0, the main focus of this package is to ease the
  44. transition to libc6.  No significant, new features are expected to be
  45. added.  If you need new features, switch to libc6.
  46.  
  47. Except for libpthread.so, the sonames of the core libraries provided
  48. with libc6 have been chosen so they do not conflict with those
  49. provided by libc5 and ld.so.  However, the current plan is not use
  50. new, nonconflicting sonames for other libraries such as ncurses and
  51. X11.  This presents two problems.  First, libraries using the same
  52. soname for both libc5 and libc6 can not be placed in the same
  53. directory.  Second, the dynamic linkers need to make sure not to load
  54. a library for the wrong version of libc.
  55.  
  56. The first problem is easy.  Just move the old, libc5-based libraries
  57. to new directories (e.g. /lib/libc5-compat, /usr/lib/libc5-compat,
  58. etc.) and add those directories to /etc/ld.so.conf.  Then install the
  59. new, libc6-based versions in the standard places.
  60.  
  61. The second problem is more difficult.  Ideally, the dynamic linkers
  62. would be changed to perform a complete dependency analysis on every
  63. library to be loaded to make sure the wrong versions aren't used.
  64. This approach doesn't seem worth the added complexity, especially
  65. since we now have symbol versioning for ELF libraries.  Instead a
  66. simpler approach will be used, at least initially.
  67.  
  68. Ldconfig has been modified to perform a (currently simple) dependency
  69. analysis on libraries and to store an indication in /etc/ld.so.cache
  70. of whether a library is for libc5, libc6 or an unknown libc.  The
  71. dynamic linkers then only need to make a simple check at run-time to
  72. make sure they don't load the wrong version of a library.
  73.  
  74. The dynamic linker for libc5 provided in this package, has already
  75. been modified to use the new information in /etc/ld.so.cache.  For
  76. glibc versions 2.0.1 and earlier, the dynamic linker for libc6 needs
  77. the patch contained in glibc.patch.  You should apply the patch and
  78. rebuild glibc before using the new ldconfig.
  79.  
  80. As stated above, the dependency analysis currently done by ldconfig is
  81. rather simple.  Basically, it looks for the sonames used by the
  82. various versions of libc, libm and libdl.  For any approach using a
  83. dependency analysis such as this to work, it is very important that
  84. shared libraries be built with complete dependency information.  This
  85. can be done by using the appropriate -l options when running 'gcc
  86. -shared'.  For example, when building libfoo.so which depends on libc
  87. and libbar, you should add -lbar and -lc gcc command line.
  88.  
  89. ######################################################################
  90.  
  91. Changes in version 1.9.9:
  92.  
  93.     Changed ld-linux.so and libdl.so to match glibc by not
  94.     allowing user preloads of system libraries into setu/gid
  95.     binaries unless the library itself is setuid.
  96.  
  97.     Fixed problems in ld-linux.so on the sparc architecture
  98.     (Juan Cespedes).
  99.  
  100. Changes in version 1.9.8:
  101.  
  102.     Changed ldconfig to allow the expected type for all
  103.     libraries in a directory to be optionally specified
  104.     (Mark Phillips).  See the ldconfig man page.
  105.  
  106.     Changed ldconfig to use the same type names used in the
  107.     change above when the -p option is used.
  108.  
  109. Changes in version 1.9.7:
  110.  
  111.     Changed ldd for m68k to use /lib/ld.so.1 instead of 
  112.     /lib/ld-linux.so.2.
  113.  
  114.     Added support for dladdr to libdl.so (Eduard Gode).
  115.  
  116.     Fixed a small memory leak in libdl.so (Richard Garnish).
  117.  
  118.     Fixed a bug in ldconfig when the -l option was used on a
  119.     filename without a '/' in it.
  120.  
  121.     Updated the man pages (Bug#6404, Bug#9721, Bug#10652, 
  122.     Bug#13494 and Bug#14127).  They could still use some work.
  123.  
  124.     No longer install the info page since it's way out of date.
  125.  
  126.     Fixed minor Debian packaging problems (Bug#13160, 
  127.     Bug#15577 and Bug#19345).
  128.  
  129. Changes in version 1.9.6:
  130.  
  131.     Changed ldd to not use the glibc dynamic linker when run
  132.     on a libc5-based shared library.
  133.  
  134.     Added a -q option to ldconfig which causes warnings not
  135.     to be printed (Bob Tinsley).
  136.  
  137.     Dropped support for the Debian libdl1-dev package.
  138.  
  139.     Changed ld-linux.so to be compilable with gcc 2.8.0 (Sven 
  140.     Verdoolaege)
  141.  
  142. Changes in version 1.9.5:
  143.  
  144.     Fixed a bug in ldd where ld-linux.so.2 was not called
  145.     correctly when run on shared libraries.
  146.  
  147.     Fixed a problem in the previous version where some
  148.     Makefiles were not architecture independent.
  149.  
  150. Changes in version 1.9.4:
  151.  
  152.     Fixed a bug in ld.so introduced in the previous version
  153.     which broke preloads.
  154.  
  155.     Turned a.out support back on by default, at least for the
  156.     time being.  There are no promises to keep it.
  157.  
  158. Changes in version 1.9.3:
  159.  
  160.     Fixed buffer overflow bugs in ld-linux.so and ld.so.
  161.  
  162.     Changed the README file a little to clarify a couple of
  163.     things.
  164.  
  165.     Changed ldconfig to chroot to the specified directory when
  166.     the new -r option is used (Bob Tinsley).
  167.  
  168. Changes in version 1.9.2:
  169.  
  170.     Removed /usr/local/lib from the default /etc/ld.so.conf
  171.     for Debian (Bug#8181).
  172.  
  173.     Changed ldconfig to be 64-bit clean (H.J. Lu).
  174.  
  175. Changes in version 1.9.1:
  176.  
  177.     Changed ldconfig to try to determine which libc a
  178.     library is for even if it doesn't have an soname.
  179.  
  180.     Fixed a bug in ldconfig where an older library using
  181.     the glibc naming convention would be used instead of
  182.     a newer library.
  183.  
  184.     Changed to ld-linux.so and libdl.so to not require the 
  185.     libc5 headers in order to compile.
  186.  
  187.     Changed ldconfig and ldd to be compilable with either
  188.     libc5 or libc6.
  189.  
  190. Changes in version 1.9.0:
  191.  
  192.     Changed to not build the old, a.out dynamic loader by
  193.     default.
  194.  
  195.     Changed instldso.sh to require the --force option to
  196.     make sure users read the README file.
  197.  
  198.     Changed instldso.sh to not install the libdl.so
  199.     development files unless the --devfiles option is used.
  200.  
  201.     Changed instldso.sh to not strip binaries and libraries
  202.     if the --no-strip option is used.
  203.  
  204.     Changed the Debian packaging to put the development files 
  205.     which conflict with glibc in a new libdl1-dev package.
  206.  
  207.     Changed ldd to use the glibc dynamic linker, if it is
  208.     available, when run on a shared library.
  209.  
  210.     Changed ld-linux.so to print the load addresses of
  211.     libraries, ala glibc, when run by ldd.
  212.  
  213.     Changed ld-linux.so to allow the libraries listed in 
  214.     LD_PRELOAD to be separated by white space in addition to 
  215.     colons.
  216.  
  217.     Changed ld-linux.so to load the libraries listed in 
  218.     LD_PRELOAD for setu/gid programs as long as they can be 
  219.     loaded securely.
  220.  
  221.     Changed ldconfig to update the symlinks for the dynamic
  222.     linkers.
  223.  
  224.     Changed ldconfig to try to determine if an ELF library is
  225.     intended for libc5 or libc6 and save the infomation in the
  226.     cache.  The mechanism used is rather simplistic and may
  227.     need to be enhanced.
  228.  
  229.     Changed ldconfig to print the type of ELF library when
  230.     printing the cache.
  231.  
  232.     Changed ld-linux.so to only load ELF shared libraries for
  233.     use with libc5 or an unknown libc.
  234.  
  235. Changes in version 1.8.10:
  236.  
  237.     Fixed a bug in ldconfig where a symlink could be used
  238.     instead of a regular file.
  239.  
  240.     Fixed a Debian packaging problem for the sparc 
  241.     architecture.
  242.  
  243. Changes in version 1.8.9:
  244.  
  245.     Changed ldconfig to only cache the symlinks it creates.
  246.     This make the behavior of the dynamic linkers consistent
  247.     with how they would behave if a cache was not used.
  248.  
  249.     Changed ldconfig to cache the symlinks that it finds but
  250.     use the name of the symlink as the soname instead of the 
  251.     actual soname.
  252.  
  253. Changes in version 1.8.8:
  254.  
  255.     Minor documentation updates to reflect recent changes.
  256.  
  257.     Changed ld.so and ld-linux.so to perform more complete
  258.     validation on ld.so.cache before using it.
  259.  
  260.     Changed ldconfig to accept libraries with inconsistent
  261.     sonames since glibc is going to use them.  A warning is
  262.     still printed in debug mode.
  263.  
  264.     Changed the install script to not strip _dl_debug_state
  265.     from ld-linux.so since gdb needs it.
  266.  
  267.     More sparc fixes (Derrick Brashear).
  268.  
  269.     Changed ldconfig to not issue a warning when a linker
  270.     script disguised as a shared library is found.
  271.  
  272.     Fixed a bug in ld-linux.so where some registers were 
  273.     not preserved on the first call to a function causing 
  274.     problems for non-C-like languages (Tim Renouf).
  275.  
  276.     Fixed a bug in ld-linux.so where global variables were 
  277.     not always mapped correctly across dynamically loaded 
  278.     libraries (Mikihiko Nakao).
  279.  
  280.     Converted to new Debian source packaging format (Shaya
  281.     Potter).
  282.  
  283. Changes in version 1.8.6/7:
  284.  
  285.     Never released as some unofficial patches used these
  286.     version numbers.
  287.  
  288. Changes in version 1.8.5:
  289.  
  290.     Fixed a bug in ld.so introduced in the previous changes.
  291.  
  292. Changes in version 1.8.4:
  293.  
  294.     Changed ldconfig to completely ignore symbolic links.
  295.  
  296.     Changed ldconfig to issue the warning concerning an
  297.     inconsistent soname in non-verbose mode.
  298.  
  299.     Changed ld-linux.so back to not keep ld.so.cache mapped
  300.     at all times.
  301.  
  302.     Changed Debian packaging to compress man pages, strip all
  303.     binaries (Bug#5125) and include a shlibs file.
  304.  
  305. Changes in version 1.8.3:
  306.  
  307.     Changed ld-linux.so to process LD_PRELOAD before
  308.     /etc/ld.so.preload.
  309.  
  310.     Fixed a Debian packaging problem where libdl might not
  311.     be available if other packages were upgraded at the same
  312.     time (Debian Bug#4728).
  313.  
  314.     Changed ldd to always exit with status 1 if any errors
  315.     occur (Debian Bug#4188).
  316.  
  317.     Fixed some minor problems in instldso.sh (Mike Castle and
  318.     Wolfgang Franke).
  319.  
  320.     Changed ldconfig to issue a warning in verbose mode when 
  321.     skipping a library because the soname doesn't match.
  322.  
  323.     More sparc fixes (Miguel de Icaza).
  324.  
  325.     Don't link with -N when building ld.so (Alan Modra).
  326.  
  327.     Changed ld-linux.so to better support position-dependant
  328.     libraries (NIIBE Yutaka).
  329.  
  330. Changes in version 1.8.2:
  331.  
  332.     Added a texinfo file for ld.so and libdl (Michael 
  333.     Deutschmann).
  334.  
  335.     Minor sparc and installation changes (Elliot Lee).
  336.  
  337.     Added multiple architecture support for Debian (Leland
  338.     Lucius).
  339.  
  340.     Changed libdl to better support RTLD_NEXT (Eric 
  341.     Youngdale).  Note: the exact meaning of ETLD_NEXT is 
  342.     still not clear in all cases.
  343.  
  344.     Removed some libc dependencies from libdl.  Still need
  345.     to remove malloc and free.
  346.  
  347. Changes in version 1.8.1:
  348.  
  349.     Changed ld.so to be compiled as ELF.  This also means
  350.     that ELF support is now required.  A.out support is 
  351.     still optional.
  352.  
  353.     Changed ld-linux.so and libdl.so to use the rpath in the 
  354.     executable instead of in the invoking shared library.
  355.  
  356.     More m68k fixes (Andreas Schwab).
  357.  
  358.     Various sparc fixes (Miguel de Icaza).
  359.  
  360.     Changed ldcnnfig to ignore libraries ending in '~'.
  361.  
  362.     Changed ldconfig to allow alternative conf and cache 
  363.     files to be specified on the command-line.
  364.  
  365.     Changed libdl.so to work when dlsym is passed a NULL
  366.     handle pointer.
  367.  
  368. Changes in version 1.8.0:
  369.  
  370.     Changed ld-linux.so to be more liberal when checking to
  371.     see if a library is already loaded.  This should avoid
  372.     the duplicate loading problem for programs linkeed with
  373.     the -rpath option.
  374.  
  375.     Various m68k fixes (Andreas Schwab).
  376.  
  377.     Changed ld.so to only use LD_AOUT_LIBRARY_PATH and
  378.     LD_AOUT_PRELOAD and ld-linux.so to only use 
  379.     LD_LIBRARY_PATH and LD_PRELOAD.  LD_ELF_LIBRARY_PATH
  380.     and LD_ELF_PRELOAD are no longer supported.
  381.  
  382.     Changed ld-linux.so to allow debugging of shared and
  383.     dynamically loaded libraries (H.J. Lu, Andreas Schwab).
  384.  
  385.     Changed ld-linux.so to preload ELF shared libraries 
  386.     listed in /etc/ld.so.preload.  This allows secure 
  387.     preloads, even for setuid/setgid programs.
  388.  
  389.     Changed ld-linux.so to keep ld.so.cache mapped at all
  390.     times.
  391.  
  392.     Changed ldconfig to allow #-style comments in ld.so.conf.
  393.  
  394.     Removed various compiler warnings (Richard Sladkey and
  395.     David Engel).
  396.  
  397.     Changed ldd to work on ELF shared libraries.  This may
  398.     need a little more work.
  399.  
  400. Changes in version 1.7.14:
  401.  
  402.     Changed ldconfig to recognize ELF shared libraries
  403.     generated by post-2.6 versions of ld (Andreas Schwab).
  404.  
  405.     Changed ldconfig to not remove stale links that do not
  406.     have a version number since they may be needed by ld.
  407.  
  408. Changes in version 1.7.13:
  409.  
  410.     Fixed a problem in ld-linux.so where a program linked
  411.     with a shared library that was not used could result in
  412.     a segmentation fault (H.J. Lu).
  413.  
  414. Changes in version 1.7.12:
  415.  
  416.     Fixed a problem in libdl.so where the wrong library
  417.     could be marked as global when RTLD_GLOBAL was used
  418.     (Lars Heete).
  419.  
  420.     Installed dlfcn.h with libdl.so instead of requiring
  421.     it to be supplied with libc.
  422.  
  423.     Removed support for libldso.a since it was nearly
  424.     impossible to use anyway.
  425.  
  426.     Changed ldd to detect when the program being checked
  427.     exited abnormally.
  428.  
  429. Changes in version 1.7.11:
  430.  
  431.     Changed ld.so and ld-linux.so to delete all variations
  432.     of LD_PRELOAD and LD_LIBRARY_PATH for set[ug]id programs,
  433.     This makes it harder for broken set[ug]id programs to be
  434.     compromised.
  435.  
  436.     Fixed a problem in libdl.so where dlsym would not accept
  437.     the handle returned from dlopen(0, *).
  438.  
  439. Changes in version 1.7.10:
  440.  
  441.     Changed ld-linux.so and libdl.so to support RTLD_GLOBAL
  442.     (Eric Youngdale).
  443.  
  444. Changes in version 1.7.9:
  445.  
  446.     Fixed a problem in ld-linux.so in detecting when the 
  447.     new user/group information is provided by the kernel.
  448.  
  449.     Fixed a problem in ld-linux.so where a buffer could be
  450.     overflowed if a large number of libraries were loaded
  451.     (Thomas Moore).
  452.  
  453. Changes in version 1.7.8:
  454.  
  455.     Changed the Makefiles and install scripts to support 
  456.     a.out- and ELF-only configurations.
  457.  
  458.     Changed ld-linux.so to use the user/group information
  459.     provided by linux 1.3.23+ instead of making syscalls
  460.     to get it.
  461.  
  462.     Changed libdl.so to support RTLD_NEXT (Glenn Fowler).
  463.  
  464.     Changed libdl.so to only execute the fini sections
  465.     instead of completely closing libraries at exit (Glenn
  466.     Fowler).
  467.  
  468.     Changed ld.so and ld-linux.so to print the required
  469.     cache version when a mismatch is detected.
  470.  
  471.     Changed ld-linux.so to not require on /dev/zero (Ralph
  472.     Loader).
  473.  
  474.     Minor m68k cleanups (Andreas Schwab).
  475.  
  476. Changes in version 1.7.7:
  477.  
  478.     Fixed problems compiling with recent 1.3.x kernels.
  479.  
  480.     Changed ld-linux.so to not use MAP_DENYWRITE until the
  481.     permission issue regarding it is resolved.
  482.  
  483. Changes in version 1.7.6:
  484.  
  485.     Fixed a bug in ld-linux.so dealing with a zero-length
  486.     LD_{ELF_}PRELOAD.
  487.  
  488.     Changed ld.so and ld-linux.so to truncate all variations
  489.     of LD_PRELOAD and LD_LIBRARY_PATH for set[ug]id programs.
  490.  
  491. Changes in version 1.7.5:
  492.  
  493.     Changed ldconfig to recognize libraries without any
  494.     version number (eg. libXYZ.so).
  495.  
  496.     Changed ldconfig to not generate a corrupt cache when
  497.     the disk is full or other write errors occur.
  498.  
  499.     Changed ld-linux.so to map files with MAP_DENYWRITE to
  500.     keep them from being changed while the file is in use
  501.     (Rick Sladkey).
  502.  
  503.     Changed libdl to not overwrite the scope pointer of a 
  504.     library if it was already loaded (H.J. Lu).
  505.  
  506.     Changed ld-linux.so so gdb can be used on constructors
  507.     (Eric Youngdale).
  508.  
  509.     Changed ldconfig to ignore ELF libraries where the soname
  510.     does not match the file name on the assumption that it is
  511.     a used at compile-time (eg. libcurses.so -> libncruses.so).
  512.  
  513. Changes in version 1.7.4:
  514.  
  515.     Changed ld-linux.so and libdl to use the appropriate
  516.     rpaths when searching for shared libraries (Eric
  517.     Youngdale).
  518.  
  519.     Changed ld-linux.so to search rpath before using the
  520.     cache.  This more closely conforms to the IBCS standard.
  521.  
  522. Changes in version 1.7.3:
  523.  
  524.     Changed ld-linux.so to only print a library name the
  525.     first time it is loaded when run from ldd.
  526.  
  527.     Fixed a bug in ldconfig where an invalid cache could be
  528.     generated if a directory was specified multiple times in
  529.     ld.so.conf.
  530.  
  531.     Changed ld-linux.so so it will return the address of a
  532.     weak symbol when called from dlsym in libdl (Eric 
  533.     Youngdale.
  534.  
  535. Changes in version 1.7.2:
  536.  
  537.     Changed libdl.so again to fix the undefined foobar
  538.     problem.
  539.  
  540. Changes in version 1.7.1:
  541.  
  542.     Changed libdl so it will compile at optimization level
  543.     O3 or higher.
  544.  
  545.     Changed ldconfig to always create the cache file with 
  546.     mode 644.
  547.  
  548.     Changed ldconfig to not ingore valid symlinks.
  549.  
  550.     Changed ldconfig to use the library name as the soname 
  551.     for ELF libraries that do not have an soname entry.
  552.  
  553.     Changed ld-linux.so to print the actual, requested library
  554.     name at the time it is loaded instead of trying to figure
  555.     it out after the fact.
  556.  
  557. Changes in version 1.7.0:
  558.  
  559.     Changed ldconfig to read the actual soname from the image
  560.     for ELF libraries and make it available to ld-linux.so.  
  561.     The soname for DLL libraries is still determined by
  562.     truncating the minor numbers from the image file name.
  563.  
  564.     Changed ldconfig to no longer support the undocumented
  565.     sort options.
  566.  
  567.     Changed ld.so to require a valid cache to find libraries
  568.     in directories specified in ld.so.conf.  /usr/lib and /lib
  569.     are still searched as a last resort.  Ld-linux.so already
  570.     operated this way.
  571.  
  572.     Fixed a bug in libldso.a where the arguments to
  573.     shared_loader were not parsed correctly (Wolfram Gloger).
  574.  
  575.     Added support for RELA-style relocations under Linux/68k
  576.     (Andreas Schwab).
  577.  
  578.     Changed ld-linux.so to only map the cache once for all
  579.     libraries instead of individually for each library.
  580.  
  581.     Changed ld-linux.so continue searching the cache instead of
  582.     giving up when failing to load the first entry found.
  583.  
  584.     Changed ld-linux.so to produce output similar to ld.so when
  585.     run from ldd or when errors occur.
  586.  
  587. Changes in version 1.6.7:
  588.  
  589.     Changed the install scripts to make sure that ld.so and
  590.     ld-linux.so are always usable.
  591.  
  592.     Added support for Linux/Sparc (Eric Youngdale).
  593.  
  594.     Added support for Linux/68k (Andreas Schwab).
  595.  
  596.     Fixed various bugs in ld-linux.so dealing with closing
  597.     files, unmapping memory, dereferencing NULL pointers and 
  598.     printing library names (David Engel, Eric Youngdale and 
  599.     Andreas Schwab).
  600.  
  601.     Replaced the manual page for libdl with a freely
  602.     distributable one (Adam Richter).
  603.  
  604.     Fixed a bug in ld-linux.so where LD_LIBRARY_PATH and
  605.     LD_PRELOAD were not cleared for setuid/setgid programs.
  606.  
  607.     Fixed a bug in libdl where dlsym would not return the
  608.     correct address of a symbol if it was redefined in another
  609.     library (Oleg Kibirev).
  610.  
  611.     Changed ld-linux.so to use the following order to search 
  612.     for libraries:  LD_{ELF_}LIBRARY_PATH, ld.so.cache, rpath, 
  613.     /usr/lib and /lib.
  614.  
  615.     Changed ld-linux.so to not needlessly allocate memory when
  616.     using ld.so.cache.
  617.  
  618. Changes in version 1.6.6:
  619.  
  620.     Changed ldconfig to not warn about removing stale links
  621.     unless the -v option is specified.
  622.  
  623.     Added manual pages for libdl (from FreeBSD/Sun)
  624.  
  625.     Fixed a bug in ld.so dealing with preloading of objects
  626.     generated by recent versions of ld (Mitch D'Souza).
  627.  
  628.     Fixed bugs in ldd where some errors were either not
  629.     detected or not printed.
  630.  
  631.     Fixed a bug in ld-linux.so where the trailing nul in a
  632.     library name was not being copied (Owen Taylor).
  633.  
  634. Changes in version 1.6.5:
  635.  
  636.     Changed ldconfig to remove stale symbolic links.
  637.  
  638.     Added debug hooks in ld-linux.so and libdl.so to be used 
  639.     by a future version of gdb (Eric Youngdale).
  640.  
  641. Changes in version 1.6.4:
  642.  
  643.     Change ld-linux.so to print on stdout instead of stderr
  644.     when run from ldd.
  645.  
  646.     Added support for Debian GNU/Linux packaging.
  647.  
  648. Changes in version 1.6.3:
  649.  
  650.     Fixed a bug in libdl when closing a library (H.J. Lu).
  651.  
  652. Changes in version 1.6.2:
  653.  
  654.     Changed the error message printed by ldd when a file is
  655.     not a.out or ELF.  It used to only list a.out formats.
  656.  
  657.     Changed ldconfig to no longer cache and set up links for
  658.     ld-linux.so.
  659.  
  660.     Changed ld-linux.so and libdl to not conflict with upcoming
  661.     changes in kernel header files.
  662.  
  663.     Changed ld-linux.so to not print preloaded libraries.
  664.  
  665. Changes in version 1.6.1:
  666.  
  667.     Updated the installation script.
  668.  
  669.     Changed ld.so and ld-linux.so to look for LD_AOUT_PRELOAD
  670.     and LD_ELF_PRELOAD, respectively, before LD_PRELOAD.
  671.  
  672.     Changed ld.so and ld-linux.so to use LD_AOUT_LIBRARY_PATH
  673.     and LD_ELF_LIBRARY_PATH, respectively, instead of
  674.     AOUT_LD_LIBRARY_PATH and ELF_LD_LIBRARY_PATH.
  675.  
  676. Changes in version 1.6.0:
  677.  
  678.     Changed ldconfig to process libraries which do not have
  679.     a minor version or patch level number.
  680.  
  681.     Incorporated ld-linux.so and libdl.so.
  682.  
  683.     Changed ld.so and ld-linux.so to not miss entries in the
  684.     cache when the fully qualified library is requested.
  685.  
  686.     Changed ldconfig to use stdout instead of stderr when
  687.     printing the cache.
  688.  
  689. Changes in version 1.5.3:
  690.  
  691.     LD_PRELOAD enhancements (Tristan Gigold).
  692.  
  693.     LD_PRELOAD patch for linux-68k (Andreas Schwab).
  694.  
  695. Changes in version 1.5.2:
  696.  
  697.     More ELF changes (Mitch D'Souza).
  698.  
  699.     Changed ldconfig to also update the link for ld-linux.so.
  700.  
  701. Changes in version 1.5.1:
  702.  
  703.     More ELF and LD_PRELOAD changes (Mitch D'Souza).
  704.  
  705. Changes in version 1.5.0:
  706.  
  707.     Chnaged all executables to QMAGIC (Mitch D'Souza and Rick
  708.     Sladkey).
  709.  
  710.     Added preliminary support for ELF to ldd and ldconfig (Eric 
  711.     Youndale and H.J. Lu).
  712.  
  713.     Added support for LD_PRELOAD to ld.so (Mitch D'Souza).
  714.  
  715.     Removed the "advertising" clause from the copyright notices
  716.     in all source files.
  717.  
  718. Changes in version 1.4.4:
  719.  
  720.     Changed ldconfig to support QMAGIC libraries.
  721.  
  722.     Fixed a bug in ld.so where some of the error messages had
  723.     transposed arguments.
  724.  
  725. Changes in version 1.4.3:
  726.  
  727.     Fixed an obscure bug in ld.so where an index was not being
  728.     incremented when a library was not found using the cache.
  729.  
  730. Changes in version 1.4.2:
  731.  
  732.     Changed ldconfig to issue a warning and continue instead
  733.     of an error and exiting when a link can't be updated.  
  734.     This is useful when some libraries are imported on read-
  735.     only file systems, such as an NFS mounted /usr.
  736.  
  737.     Changed ld.so to be more robust in searching for libraries.
  738.     A library is not considered found unless it can actually be
  739.     loaded.  If a library is not found using the cache, the
  740.     standard directories are searched as in pre-cache versions.
  741.  
  742. Changes in version 1.4.1:
  743.  
  744.     Fixed minor Makefile problems.
  745.  
  746.     Added support for linux-68k.
  747.  
  748.     Fixed a bug in ld.so where libraries with absolute paths
  749.     were not handled correctly.
  750.  
  751.     Changed ld.so to ignore the directory in the names of
  752.     shared libraries by default.  This allows older libraries
  753.     with absolute paths, such as the XView libraries, to take
  754.     advantage of the cache support.
  755.  
  756.     Added a minimal usage message to ldconfig.
  757.  
  758. Changes in version 1.4:
  759.  
  760.     Fixed bug in ld.so where minor version numbers were not
  761.     reported correctly when a minor version incompatibility
  762.     was found.
  763.  
  764.     Fixed bug in ldconfig where libraries with subversion
  765.     numbers greater than 9 were not compared correctly.
  766.  
  767.     Added Mitch D'Souza's support for suppressing warning
  768.     messages from ld.so about minor version incompatibilities.
  769.  
  770.     Added Mitch D'Souza's support for using a cache to speed
  771.     up searching for libraries in the standard directories.
  772.  
  773.     Added Mitch D'Souza's support for a debugging version of
  774.     ld.so.  Link with -lldso if you think you are experiencing
  775.     dynamic linker problems.
  776.  
  777. Changes in version 1.3:
  778.  
  779.     Added support for libraries using absolute pathnames.  If I
  780.     had known that the XView libraries used them, I would have
  781.     added this earlier.
  782.  
  783.     Fixed a bug handling old libraries using a pathname beginning
  784.     with '/' or '/lib/'.
  785.  
  786. Changes in version 1.2a:
  787.  
  788.     Fixed a minor bug in ldd which caused all files, specifically
  789.     scripts, to be recognized as binaries.  Thanks to Olaf Flebbe
  790.     for reporting it.
  791.  
  792. David Engel
  793. david@sw.ods.com
  794.